/**
 * 服务端
 */
var http 			= require('http')		// http 模块
	,url			= require('url')		// url 模块
	,util			= require('util')		// util 工具模块
	,querystring	= require('querystring');	// 查询字符串模块
	
// html 页面
var html = 
  '<html>' +
  '	<head>' +
  '		<meta charset="utf-8"><title>POST 示例</title>' +
  ' </head>' +
  '	<body>' +
  '		<form method="post">' +
  '			<input type="hidden" name="form_id" value="1"><br>' +
  '			<label>名称：</label><input name="name"><br>' +
  '			<label>年龄： </label><input name="age"><br>' +
  '			<label>昵称： </label><input name="nick"><br>' +
  '			<input type="submit">' +
  '		</form>' +
  '	</body>' +
  '</html>';

// 创建服务器监听8888端口
http.createServer(connect).listen(8888);

/**
 * 连接函数
 * @param object request			请求对象
 * @param object response			响应对象
 */
function connect(request, response){
	// 解析请求
	var pathname = url.parse(request.url).pathname;
	
	console.log("请求路径："+pathname);
	
	// 接收POST请求
	post(request, response);
}

/**
 * POST 处理函数
 * @param object request	请求对象
 */
function post(request, response){
	// POST 数据
	var post_data = '';
	
	// 接收POST数据
	request.on('data', function(data){
		// 接收到的数据放入内存
		post_data += data;
	});
	
	// 接收完毕
	request.on('end', function(){
		// 数据
		var content = '';
		
		// 解析POST数据
		post_data = querystring.parse(post_data);
		
		// 是否接收表单
		if(!post_data.form_id){
			content = html;
		}else{
			// 对象字符串
			if(post_data.form_id) content += '表单ID：'+post_data.form_id+'<br/>';
			if(post_data.name) content += '名称：'+post_data.name+'<br/>';
			if(post_data.age) content += '年龄：'+post_data.age+'<br/>';
			if(post_data.nick) content += '昵称：'+post_data.nick+'<br/>';
		}
		
		// 输出数据
		output(content, response);
	});
}

/**
 * 响应输出
 * @param string content		响应内容	
 * @param object response		响应对象
 */
function output(content, response){
	// 头信息
	response.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
	
	// 输出内容
	response.write(content);
	
	// 结束输出
	response.end();
}
